//
//  WBStatusPictureView.swift
//  XLWB
//
//  Created by MacBook on 16/7/6.
//  Copyright © 2016年 MacBook. All rights reserved.
//

import UIKit

class WBStatusPictureView: UIView {
    
    var viewModel: WBStatusViewModel? {
    
        didSet {
        
            calcViewSize()
        
            //设置urls
            urls = viewModel?.picURLs
        }
    
    }
    
    //根据视图模型的配图视图带下,调整显示内容
    private func calcViewSize() {
    
        //处理宽度
        //1.单图.根据配图视图的大小,修改subview[0]的宽高
        if viewModel?.picURLs?.count == 1 {
            
            let viewSize = viewModel?.pictureViewSize ?? CGSize()
            
            //a.获取第0个图像视图
            let v = subviews[0]
            v.frame = CGRect(x: 0,
                             y: WBStatusPictureViewOutterMargin,
                             width: viewSize.width,
                             height: viewSize.height - WBStatusPictureViewOutterMargin)
            
        } else {
        
            //2多图,恢复第0个的宽高,保证九宫格的完整布局
            let v = subviews[0]
            v.frame = CGRect(x: 0,
                             y: WBStatusPictureViewOutterMargin,
                             width: WBStatusPictureItemWidth,
                             height: WBStatusPictureItemWidth)
            

        
        
        }
        //修改高度约束
        heightCons.constant = viewModel?.pictureViewSize.height ?? 0
    
    
    }
    //配图视图数组
   private var urls: [WBStatusPicture]? {
    
        didSet {
        
            //1.隐藏所有的imageView
            for v in subviews {
                v.isHidden = true
            }
        //2.遍历urls数组,顺序设置图像
            var index = 0
            for url in urls ?? [] {
                // 获得对应索引的 imageView
                let iv = subviews[index] as! UIImageView
                
                //4张图像处理
                if index == 1 && urls?.count == 4 {
                    index += 1
                }
                //设置图像
                iv.da_setImage(urlString: url.thumbnail_pic, placeholderImage: nil)
                //显示图像
                iv.isHidden = false
                
                index += 1

            }
        
        }
    
    }
    
    @IBOutlet weak var heightCons: NSLayoutConstraint!

    override func awakeFromNib() {
        
        setupUI()
    }
    
}
//MARK--设置界面
extension WBStatusPictureView {

    //不需要动态创建控件
    //设置的时候根据数据决定是否显示
    private func setupUI() {
    
        backgroundColor = superview?.backgroundColor
        //超出边界的内容不显示
        clipsToBounds = true
        
        let count = 3
        let rect = CGRect(x: 0,
                          y: WBStatusPictureViewOutterMargin,
                          width: WBStatusPictureItemWidth,
                          height: WBStatusPictureItemWidth)
    
        for i in 0..<count * count {
        
            let iv = UIImageView()
            
            iv.contentMode = .scaleAspectFill
            iv.clipsToBounds = true
            
            //行
            let row = CGFloat(i / count)
            //列
            let col = CGFloat(i % count)
            
            let xOffset = col * (WBStatusPictureItemWidth + WBStatusPictureViewInnerMargin)
            let yOffset = row * (WBStatusPictureItemWidth + WBStatusPictureViewInnerMargin)
            iv.frame = rect.offsetBy(dx: xOffset, dy: yOffset)
            
            addSubview(iv)
        
        
        
        }
    
    }

}
